/**
 * 
 */
package com.wolfpire.info.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.wolfpire.system.common.Constants;
import com.wolfpire.system.common.UnCover;

/**
 * 管理人员统计表
 * @author lihd
 *
 */

@Entity
@Table(name = "t_staff_count_info")
public class StaffCountInfo implements Serializable {

	private static final long serialVersionUID = -2932694137174773120L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "id", unique = true, nullable = false, length = 16)
	private Long id;//主键Id
	
	@Column(name = "year_", length = 5)
	private Integer year; //年度
	
	@Column(name = "total", length = 8)
	private Integer total; //合计
	
	@Column(name = "school_level", length = 8)
	private Integer schoolLevel; //校   级
	
	@Column(name = "man_middle_level", length = 8)
	private Integer manMiddleLevel; //中层正职
	
	@Column(name = "deputy_middle_level", length = 8)
	private Integer deputyMiddleLevel; //中层副职
	
	@Column(name = "general_manager", length = 8)
	private Integer generalManager; //一般管理人员
	
	@Column(name = "counselor", length = 8)
	private Integer counselor; //专职辅导员
	
	@Column(name = "create_user_id", length = 16)
	private Long createUserId; //创建用户Id
	
	@Column(name = "create_user_name", length = 50)
	private String createUserName; //创建用户名称
	
	@UnCover
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "create_time")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")  
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") 
	private Date createTime = new Date();//创建时间
	
	@Column(name = "del_flag", length = 1)
	private Integer delFlag = Constants.NORMAL_FLAG;
	
	@Transient
	private StaffDetailCountInfo schoolLevelDetail;
	
	@Transient 
	private StaffDetailCountInfo manMiddleLevelDetail;
	
	@Transient 
	private StaffDetailCountInfo deputyMiddleLevelDetail;
	
	@Transient
	private StaffDetailCountInfo generalManagerDetail;
	
	@Transient
	private StaffDetailCountInfo counselorDetail;

	public StaffCountInfo() {
		super();
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Integer getYear() {
		return year;
	}

	public void setYear(Integer year) {
		this.year = year;
	}

	public Integer getTotal() {
		return total;
	}

	public void setTotal(Integer total) {
		this.total = total;
	}

	public Integer getSchoolLevel() {
		return schoolLevel;
	}

	public void setSchoolLevel(Integer schoolLevel) {
		this.schoolLevel = schoolLevel;
	}

	public Integer getManMiddleLevel() {
		return manMiddleLevel;
	}

	public void setManMiddleLevel(Integer manMiddleLevel) {
		this.manMiddleLevel = manMiddleLevel;
	}

	public Integer getDeputyMiddleLevel() {
		return deputyMiddleLevel;
	}

	public void setDeputyMiddleLevel(Integer deputyMiddleLevel) {
		this.deputyMiddleLevel = deputyMiddleLevel;
	}

	public Integer getGeneralManager() {
		return generalManager;
	}

	public void setGeneralManager(Integer generalManager) {
		this.generalManager = generalManager;
	}

	public Integer getCounselor() {
		return counselor;
	}

	public void setCounselor(Integer counselor) {
		this.counselor = counselor;
	}

	public Long getCreateUserId() {
		return createUserId;
	}

	public void setCreateUserId(Long createUserId) {
		this.createUserId = createUserId;
	}

	public String getCreateUserName() {
		return createUserName;
	}

	public void setCreateUserName(String createUserName) {
		this.createUserName = createUserName;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Integer getDelFlag() {
		return delFlag;
	}

	public void setDelFlag(Integer delFlag) {
		this.delFlag = delFlag;
	}

	public StaffDetailCountInfo getSchoolLevelDetail() {
		return schoolLevelDetail;
	}

	public void setSchoolLevelDetail(StaffDetailCountInfo schoolLevelDetail) {
		this.schoolLevelDetail = schoolLevelDetail;
	}

	public StaffDetailCountInfo getManMiddleLevelDetail() {
		return manMiddleLevelDetail;
	}

	public void setManMiddleLevelDetail(StaffDetailCountInfo manMiddleLevelDetail) {
		this.manMiddleLevelDetail = manMiddleLevelDetail;
	}

	public StaffDetailCountInfo getDeputyMiddleLevelDetail() {
		return deputyMiddleLevelDetail;
	}

	public void setDeputyMiddleLevelDetail(
			StaffDetailCountInfo deputyMiddleLevelDetail) {
		this.deputyMiddleLevelDetail = deputyMiddleLevelDetail;
	}

	public StaffDetailCountInfo getGeneralManagerDetail() {
		return generalManagerDetail;
	}

	public void setGeneralManagerDetail(StaffDetailCountInfo generalManagerDetail) {
		this.generalManagerDetail = generalManagerDetail;
	}

	public StaffDetailCountInfo getCounselorDetail() {
		return counselorDetail;
	}

	public void setCounselorDetail(StaffDetailCountInfo counselorDetail) {
		this.counselorDetail = counselorDetail;
	}
	
}
